import 'dart:io';

void main() {
  print('开始执行');
  getData().then((value) {
    //成功会执行
    print('then执行' + value);
  }).catchError((e) {
    //失败会执行
    print(e);
  }).whenComplete(() {
    //无论成功还是失败都会执行
    print('whenComplete执行');
  });
  print('结束执行');
}

Future<String> getData() async {
  return Future(() {
    print('开始获取数据');
    sleep(Duration(seconds: 2));
    print('数据获取完毕');
    //模拟异常
    throw Exception('数据获取失败');
    //return 'hello world';
  });
}
